unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, sqlite3conn, sqldb, db, FileUtil, LResources, Forms,
  Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, ComCtrls, DBGrids, EditBtn,
  LR_Class, LR_DBSet, LR_View, LR_Desgn;

// rodzaje sumowań
const
    pojNajwiekszaWaga   = 101;
    pojZlotyKaras       = 102;
    pojNajwiekszyDrap   = 103;
    pojNajwiekszaRyba    = 107;

    klNajwiekszaWaga    = 104;
    klZlotyKaras        = 105;
    klNajwiekszyDrap    = 106;
    klNajwiekszaRyba    = 108;

// nazwy plikow raportow dla powyzszych zestawien
    rap_poj_NajwiekszaWaga = 'rp_nw.lrf';
    rap_poj_ZlotyKaras     = 'rp_zk.lrf';
    rap_poj_NajwiekszyDrap = 'rp_nd.lrf';
    rap_poj_NajwiekszaRyba = 'rp_nr.lrf';

    rap_kl_NajwiekszaWaga  = 'rk_nw.lrf';
    rap_kl_ZlotyKaras      = 'rk_zk.lrf';
    rap_kl_NajwiekszyDrap  = 'rk_nd.lrf';
    rap_kl_NajwiekszaRyba  = 'rk_nr.lrf';


type

  { TForm1 }

  TForm1 = class(TForm)
    btKoniec: TButton;
    Button1: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    btDodajPrzychod: TButton;
    btEdytujDokument: TButton;
    btKasujDokument: TButton;
    Button17: TButton;
    Button18: TButton;
    Button19: TButton;
    Button2: TButton;
    Button20: TButton;
    Button21: TButton;
    Button22: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    DataKoniec1: TDateEdit;
    DataStart1: TDateEdit;
    DBGrid1: TDBGrid;
    ds: TDatasource;
    DataStart: TDateEdit;
    DataKoniec: TDateEdit;
    dbgrid_dok: TDBGrid;
    DBGrid_kontr: TDBGrid;
    DBGrid_asort: TDBGrid;
    DBGrid_jm: TDBGrid;
    frDBDataSet1: TfrDBDataSet;
    frDesigner1: TfrDesigner;
    frReport1: TfrReport;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Image2: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Memo1: TMemo;
    Memo2: TMemo;
    PageControl1: TPageControl;
    PageControl2: TPageControl;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    main_connection: TSQLite3Connection;
    Panel7: TPanel;
    query: TSQLQuery;
    RadioGroup1: TRadioGroup;
    TabSheet7: TTabSheet;
    TabSheet8: TTabSheet;
    trans: TSQLTransaction;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    TabSheet6: TTabSheet;
    procedure btDodajPrzychodClick(Sender: TObject);
    procedure btDodajRozchodClick(Sender: TObject);
    procedure btEdytujDokumentClick(Sender: TObject);
    procedure btKasujDokumentClick(Sender: TObject);
    procedure btKoniecClick(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button19Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button21Click(Sender: TObject);
    procedure Button22Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure DataKoniecChange(Sender: TObject);
    procedure DataStartChange(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure PageControl2Change(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
    procedure RodzDokSelClick(Sender: TObject);
    procedure TabSheet1Show(Sender: TObject);
    procedure TabSheet2Show(Sender: TObject);
    procedure TabSheet3Enter(Sender: TObject);
    procedure TabSheet3Hide(Sender: TObject);
    procedure TabSheet3Show(Sender: TObject);
    procedure TabSheet4Enter(Sender: TObject);
    procedure TabSheet4Hide(Sender: TObject);
    procedure TabSheet4Show(Sender: TObject);
    procedure TabSheet5Enter(Sender: TObject);
    procedure TabSheet5Hide(Sender: TObject);
    procedure TabSheet5Show(Sender: TObject);
    procedure TabSheet8Show(Sender: TObject);

  private
    { private declarations }
  public
    { public declarations }
    db_name    : string;
    first_init : boolean;

    rodzaj_zestawienia : byte;
  end; 

var
  Form1: TForm1; 

implementation
uses
  unit2,
  unit3,
  unit4,
  Unit5,
  Unit6,
  Unit7;
{ TForm1 }

function ifs(_test : boolean):integer;
begin
  if _test then ifs:=1 else ifs:=0;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  form1.ActiveControl:=form1.PageControl1;
  PageControl1.ActivePageIndex:=0;

  {$IFDEF LINUX}
  form1.main_connection.DatabaseName:='./baza.sqlite';
  {$ELSE}
  form1.main_connection.DatabaseName:='.\baza.sqlite';
  {$ENDIF}
  db_name:=form1.main_connection.DatabaseName;

  if not form1.main_connection.Connected then
  begin
    form1.main_connection.Connected:=true;
    form1.main_connection.Open;
  end;

  first_init:=true;

  form1.query.DataBase:=form1.main_connection;
  form1.trans.DataBase:=form1.main_connection;
  form1.query.Transaction:=form1.trans;

  form1.DataStart.Date:=now() - 7;
  form1.DataKoniec.Date:=now();

end;

procedure TForm1.PageControl2Change(Sender: TObject);
begin

end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  TabSheet1Show(nil);
end;

procedure TForm1.RodzDokSelClick(Sender: TObject);
begin
//  TabSheet1Show(nil);
end;

// odswiezenie zakladki wpisów
procedure TForm1.TabSheet1Show(Sender: TObject);
var
  dta,dtb : string;
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  //                                               0                      1                2                   3               4                             5                          6                               7
  form1.query.SQL.Add('select wp.dataczas "Dataczas", st.nazwa "Stanowisko", kl.nazwa "Klub", cz.nazwa "Członek", wp.waga "Waga", wp.zloty_karas "Złoty karaś", wp.drapieznik "Drapieżnik", wp.najwryba "Najwieksza ryba"');
  //                         8                  9           10           11
  form1.query.SQL.Add(',wp.idx, wp.idx_stanowisko, wp.idx_klub, wp.idx_imnz');
  form1.query.SQL.Add('from wpisy wp, stanowisko st, klub kl, czlonek cz');
  form1.query.SQL.Add('where wp.idx_stanowisko = st.idx and ');
  form1.query.SQL.Add('wp.idx_klub = kl.idx and ');
  form1.query.SQL.Add('wp.idx_imnz = cz.idx and ');
  form1.query.SQL.Add('((:dta <= wp.dataczas) and (wp.dataczas <= :dtb))');
  case RadioGroup1.ItemIndex of
    0 : form1.query.SQL.Add('order by Członek, dataczas');
    1 : form1.query.SQL.Add('order by Stanowisko, dataczas');
    2 : form1.query.SQL.Add('order by Klub, dataczas');
    3 : form1.query.SQL.Add('order by dataczas, Członek');
    4 : form1.query.SQL.Add('order by dataczas, Stanowisko');
    5 : form1.query.SQL.Add('order by dataczas, Klub');
  end;
  dta:=DateToStr(form1.DataStart.Date)+' 00:00:00';
  dtb:=DateToStr(form1.DataKoniec.Date)+' 23:59:59';
  form1.query.Params.ParamByName('dta').AsDate:=StrToDateTime(dta);
  form1.query.Params.ParamByName('dtb').AsDate:=StrToDateTime(dtb);
  form1.trans.StartTransaction;
  form1.query.Open;
  form1.dbgrid_dok.Columns[8].Visible:=false;
  form1.dbgrid_dok.Columns[9].Visible:=false;
  form1.dbgrid_dok.Columns[10].Visible:=false;
  form1.dbgrid_dok.Columns[11].Visible:=false;
end;

procedure TForm1.TabSheet2Show(Sender: TObject);
begin
  form1.PageControl2.ActivePageIndex:=0;
  // pierwsza kartoteka to kontrahenci
  TabSheet3Show(nil);
end;

procedure TForm1.TabSheet3Enter(Sender: TObject);
begin
  // odswiezanie zakładki kartoteki kontrahentów
  TabSheet3Show(nil);
end;

// schowanie zakładki kontrahentów
procedure TForm1.TabSheet3Hide(Sender: TObject);
begin

end;

// odswiezanie zakładki kartoteki kontrahentów
procedure TForm1.TabSheet3Show(Sender: TObject);
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select * from stanowisko order by nazwa');
  form1.trans.StartTransaction;
  form1.query.Open;

end;

procedure TForm1.TabSheet4Enter(Sender: TObject);
begin
  // odswiezanie zakładki kartoteki artykuly
  TabSheet4Show(nil);
end;

// schowanie zakładki asortymenu
procedure TForm1.TabSheet4Hide(Sender: TObject);
begin

end;

// odswiezanie zakładki kartoteki artykuly
procedure TForm1.TabSheet4Show(Sender: TObject);
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select * from klub order by nazwa');
  form1.trans.StartTransaction;
  form1.query.Open;

end;

procedure TForm1.TabSheet5Enter(Sender: TObject);
begin
  // odswiezanie zakładki kartoteki jednostek miar
  TabSheet5Show(nil);
end;

// schownie zakładki jednostek miar
procedure TForm1.TabSheet5Hide(Sender: TObject);
begin

end;

// odswiezanie zakładki kartoteki jednostek miar
procedure TForm1.TabSheet5Show(Sender: TObject);
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.Active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select * from czlonek order by nazwa');
  form1.trans.StartTransaction;
  form1.query.Open;

end;

procedure TForm1.TabSheet8Show(Sender: TObject);
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.Active then form1.trans.Commit;
end;

// klub - najwieksza ryba
procedure TForm1.Button15Click(Sender: TObject);
var
  dta,dtb : string;
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select kl.nazwa "Klub", sum(wp.waga) "Suma waga"');
  form1.query.SQL.Add('from wpisy wp, klub kl');
  form1.query.SQL.Add('where wp.idx_klub = kl.idx and ');
  form1.query.SQL.Add('((:dta <= wp.dataczas) and (wp.dataczas <= :dtb))');
  form1.query.SQL.Add('group by "Klub"');
  form1.query.SQL.Add('order by "Suma waga" desc');
  dta:=DateToStr(form1.DataStart1.Date)+' 00:00:00';
  dtb:=DateToStr(form1.DataKoniec1.Date)+' 23:59:59';
  form1.query.Params.ParamByName('dta').AsDate:=StrToDateTime(dta);
  form1.query.Params.ParamByName('dtb').AsDate:=StrToDateTime(dtb);
  form1.trans.StartTransaction;
  form1.query.Open;

  rodzaj_zestawienia:=klNajwiekszaWaga;
end;

procedure TForm1.btKoniecClick(Sender: TObject);
begin
  close;
end;

// dodaj wpis
procedure TForm1.btDodajPrzychodClick(Sender: TObject);
var
  idx : integer;

begin
  form2.Edit1.Text:=DateTimeToStr(now);
  form2.Edit2.Text:='';
  form2.Edit3.Text:='';
  form2.Edit4.Text:='';
  form2.Edit5.Text:='';
  form2.CheckBox1.Checked:=false;
  form2.CheckBox2.Checked:=false;
  form2.CheckBox3.Checked:=false;

  if form1.query.Active then form1.query.Close;
  if form1.trans.Active then form1.trans.Commit;

  // dodanie nowego naglowka wpisu
  form1.trans.StartTransaction;
  form1.query.SQL.Clear;
  form1.query.SQL.Add('insert into wpisy (dataczas)');
  form1.query.SQL.Add('values (:dataczas)');
  form1.query.Params.ParamByName('dataczas').AsDateTime:=StrToDateTime(form2.Edit1.Text);
  form1.query.ExecSQL;

  // pobranie nowow wygenerowanego ID naglowka
  form1.query.SQL.Clear;
  form1.query.SQL.Add('select idx from wpisy order by idx desc limit 1');
  form1.query.Open;
  idx:=form1.query.FieldByName('idx').AsInteger;

  form2.Caption:='Nowy wpis';

  if form2.showmodal = mrOk then
  begin
    form1.query.Close;
    form1.query.SQL.Clear;
    form1.query.SQL.Add('update wpisy set idx_stanowisko = :idx_stanowisko,');
    form1.query.SQL.Add('                 idx_klub       = :idx_klub,');
    form1.query.SQL.Add('                 idx_imnz       = :idx_czlonek,');
    form1.query.SQL.Add('                 waga           = :waga,');
    form1.query.SQL.Add('                 najwryba       = :najwryba,');
    form1.query.SQL.Add('                 zloty_karas    = :zloty_karas,');
    form1.query.SQL.Add('                 drapieznik     = :drapieznik');
    form1.query.SQL.Add('where idx=:idx');
    form1.query.Params.ParamByName('idx_stanowisko').AsInteger:=form2.idx_stanowisko;
    form1.query.Params.ParamByName('idx_klub').AsInteger      :=form2.idx_klub;
    form1.query.Params.ParamByName('idx_czlonek').AsInteger   :=form2.idx_czlonek;
    form1.query.Params.ParamByName('waga').AsFloat            :=StrToFloat(form2.Edit5.Text);
    form1.query.Params.ParamByName('zloty_karas').AsInteger   :=ifs(form2.CheckBox1.Checked);
    form1.query.Params.ParamByName('drapieznik').AsInteger    :=ifs(form2.CheckBox2.Checked);
    form1.query.Params.ParamByName('najwryba').AsInteger      :=ifs(form2.CheckBox3.Checked);
    form1.query.Params.ParamByName('idx').AsInteger:=idx;
    form1.query.ExecSQL;
    form1.trans.Commit
  end
  else form1.trans.Rollback;

  // odswiezenie zawartosci tabeli z okienkami
  TabSheet1Show(nil);
end;

procedure TForm1.btDodajRozchodClick(Sender: TObject);
begin
end;

// edytuj dokument rozchodowy
procedure TForm1.btEdytujDokumentClick(Sender: TObject);
var
  idx : integer;
begin
  idx:=form1.query.FieldByName('idx').AsInteger;
  form2.idx_czlonek      :=form1.query.FieldByName('idx_imnz').AsInteger;
  form2.Edit2.Text       :=form1.query.FieldByName('Stanowisko').AsString;

  form2.idx_klub         :=form1.query.FieldByName('idx_klub').AsInteger;
  form2.Edit3.Text       :=form1.query.FieldByName('Klub').AsString;

  form2.idx_stanowisko   :=form1.query.FieldByName('idx_stanowisko').AsInteger;
  form2.Edit4.Text       :=form1.query.FieldByName('Członek').AsString;

  form2.Edit1.Text       :=DateTimeToStr(form1.query.FieldByName('dataczas').AsDateTime);
  form2.Edit5.Text       :=FloatToStr(form1.query.FieldByName('Waga').AsFloat);
  form2.CheckBox1.Checked:=form1.query.FieldByName('Złoty karaś').AsInteger = 1;
  form2.CheckBox2.Checked:=form1.query.FieldByName('Drapieżnik').AsInteger = 1;
  form2.CheckBox3.Checked:=form1.query.FieldByName('Najwieksza ryba').AsInteger = 1;

  if form1.query.Active then form1.query.Close;
  if form1.trans.Active then form1.trans.Commit;

  form1.trans.StartTransaction;

  if form2.ShowModal = mrOk then
  begin
    if form1.query.Active then form1.query.Close;
    form1.query.SQL.Clear;
    form1.query.SQL.Add('update wpisy set idx_stanowisko = :idx_stanowisko,');
    form1.query.SQL.Add('                 idx_klub       = :idx_klub,');
    form1.query.SQL.Add('                 idx_imnz       = :idx_czlonek,');
    form1.query.SQL.Add('                 waga           = :waga,');
    form1.query.SQL.Add('                 zloty_karas    = :zloty_karas,');
    form1.query.SQL.Add('                 najwryba       = :najwryba,');
    form1.query.SQL.Add('                 drapieznik     = :drapieznik,');
    form1.query.SQL.Add('                 dataczas       = :dataczas');
    form1.query.SQL.Add('where idx=:idx');
    form1.query.Params.ParamByName('idx_stanowisko').AsInteger:=form2.idx_stanowisko;
    form1.query.Params.ParamByName('idx_klub').AsInteger      :=form2.idx_klub;
    form1.query.Params.ParamByName('idx_czlonek').AsInteger   :=form2.idx_czlonek;
    form1.query.Params.ParamByName('waga').AsFloat            :=StrToFloat(form2.Edit5.Text);
    form1.query.Params.ParamByName('zloty_karas').AsInteger   :=ifs(form2.CheckBox1.Checked);
    form1.query.Params.ParamByName('drapieznik').AsInteger    :=ifs(form2.CheckBox2.Checked);
    form1.query.Params.ParamByName('najwryba').AsInteger      :=ifs(form2.CheckBox3.Checked);
    form1.query.Params.ParamByName('dataczas').AsDateTime     :=StrToDateTime(form2.Edit1.Text);
    form1.query.Params.ParamByName('idx').AsInteger:=idx;
    form1.query.ExecSQL;
    form1.trans.Commit
  end
  else form1.trans.Rollback;

  // odswiezenie zawartosci tabeli z okienkami
  TabSheet1Show(nil);

end;

// kasuj dokument rozchodowy
procedure TForm1.btKasujDokumentClick(Sender: TObject);
var
   idx : integer;
begin
  idx:=form1.query.FieldByName('idx').AsInteger;
  if MessageDlg ('Pytanie', 'Czy napewno usunąć podświetlony wpis ?',
      mtConfirmation, [mbYes, mbNo],0) = mrYes
  Then
    begin
      if form1.query.Active then form1.query.Close;
      if form1.trans.Active then form1.trans.Commit;

      form1.query.SQL.Clear;
      form1.query.SQL.Add('delete from wpisy where idx = '+IntToStr(idx)+';');
      form1.trans.StartTransaction;
      form1.query.ExecSQL;
      form1.trans.Commit;
      // odswiezenie zawartosci tabeli z okienkami
      TabSheet1Show(nil);
    end;
end;

// kasowanie i tworzenie bazy
procedure TForm1.Button16Click(Sender: TObject);
begin
  if not checkbox1.Checked then exit;
  if not checkbox2.Checked then exit;

  memo1.Lines.Clear;

  if form1.query.Active then form1.query.Close;
  if form1.trans.Active then form1.trans.Commit;

  memo1.Lines.Add('Kasowanie indeksu wpisy_idx');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('drop index if exists wpisy_idx');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

  memo1.Lines.Add('Kasowanie tabeli wpisy');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('drop table if exists wpisy');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

  memo1.Lines.Add('Kasowanie indeksu stanowisko_idx');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('drop index if exists stanowisko_idx');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

  memo1.Lines.Add('Kasowanie tabeli stanowisko');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('drop table if exists stanowisko');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

  memo1.Lines.Add('Kasowanie indeksu klub_idx');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('drop index if exists klub_idx');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

  memo1.Lines.Add('Kasowanie tabeli klub');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('drop table if exists klub');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

  memo1.Lines.Add('Kasowanie indeksu czlonek_idx');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('drop index if exists czlonek_idx');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

  memo1.Lines.Add('Kasowanie tabeli czlonek');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('drop table if exists czlonek');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;


  //------------------------------------------------------------

  memo1.Lines.Add('Tworzenie tabeli wpisy');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('create table wpisy (');
  form1.query.SQL.Add('idx           integer primary key,');
  form1.query.SQL.Add('idx_stanowisko  integer,');
  form1.query.SQL.Add('idx_klub        integer,');
  form1.query.SQL.Add('idx_imnz        integer,');
  form1.query.SQL.Add('dataczas        datetime,');
  form1.query.SQL.Add('waga            real,');
  form1.query.SQL.Add('najwryba        integer,'); // 1 - tak, 0 - nie
  form1.query.SQL.Add('zloty_karas     integer,'); // 1 - tak, 0 - nie
  form1.query.SQL.Add('drapieznik      integer');  // 1 - tak, 0 - nie
  form1.query.SQL.Add(')');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

  memo1.Lines.Add('Tworzenie indeksu wpisy_idx');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('create index wpisy_idx on wpisy(idx asc)');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

// -------------------------------------------------------------------------

  memo1.Lines.Add('Tworzenie tabeli stanowisko');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('create table stanowisko (');
  form1.query.SQL.Add('idx       integer primary key,');
  form1.query.SQL.Add('nazwa     varchar');
  form1.query.SQL.Add(')');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

  memo1.Lines.Add('Tworzenie indeksu stanowisko_idx');
  form1.query.SQL.Clear;
  form1.query.SQL.Add('create index stanowisko_idx on stanowisko(idx asc)');
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;

  // -------------------------------------------------------------------------

   memo1.Lines.Add('Tworzenie tabeli klub');
   form1.query.SQL.Clear;
   form1.query.SQL.Add('create table klub (');
   form1.query.SQL.Add('idx       integer primary key,');
   form1.query.SQL.Add('nazwa     varchar');
   form1.query.SQL.Add(')');
   form1.trans.StartTransaction;
   form1.query.ExecSQL;
   form1.trans.Commit;

   memo1.Lines.Add('Tworzenie indeksu klub_idx');
   form1.query.SQL.Clear;
   form1.query.SQL.Add('create index klub_idx on klub(idx asc)');
   form1.trans.StartTransaction;
   form1.query.ExecSQL;
   form1.trans.Commit;

   // -------------------------------------------------------------------------

   memo1.Lines.Add('Tworzenie tabeli czlonek');
   form1.query.SQL.Clear;
   form1.query.SQL.Add('create table czlonek (');
   form1.query.SQL.Add('idx       integer primary key,');
   form1.query.SQL.Add('nazwa     varchar');
   form1.query.SQL.Add(')');
   form1.trans.StartTransaction;
   form1.query.ExecSQL;
   form1.trans.Commit;

   memo1.Lines.Add('Tworzenie indeksu czlonek_idx');
   form1.query.SQL.Clear;
   form1.query.SQL.Add('create index czlonek_idx on czlonek(idx asc)');
   form1.trans.StartTransaction;
   form1.query.ExecSQL;
   form1.trans.Commit;
end;

// klub - zloty karas
procedure TForm1.Button17Click(Sender: TObject);
var
  dta,dtb : string;
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select kl.nazwa "Klub", sum(wp.waga) "Suma waga"');
  form1.query.SQL.Add('from wpisy wp, klub kl');
  form1.query.SQL.Add('where wp.idx_klub = kl.idx and wp.zloty_karas = 1 and');
  form1.query.SQL.Add('((:dta <= wp.dataczas) and (wp.dataczas <= :dtb))');
  form1.query.SQL.Add('group by "Klub"');
  form1.query.SQL.Add('order by "Suma waga" desc');
  dta:=DateToStr(form1.DataStart1.Date)+' 00:00:00';
  dtb:=DateToStr(form1.DataKoniec1.Date)+' 23:59:59';
  form1.query.Params.ParamByName('dta').AsDate:=StrToDateTime(dta);
  form1.query.Params.ParamByName('dtb').AsDate:=StrToDateTime(dtb);
  form1.trans.StartTransaction;
  form1.query.Open;

  rodzaj_zestawienia:=klZlotyKaras;
end;

// klub - najwiekszy drapieznik
procedure TForm1.Button18Click(Sender: TObject);
var
  dta,dtb : string;
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select kl.nazwa "Klub", sum(wp.waga) "Suma waga"');
  form1.query.SQL.Add('from wpisy wp, klub kl');
  form1.query.SQL.Add('where wp.idx_klub = kl.idx and wp.drapieznik = 1 and');
  form1.query.SQL.Add('((:dta <= wp.dataczas) and (wp.dataczas <= :dtb))');
  form1.query.SQL.Add('group by "Klub"');
  form1.query.SQL.Add('order by "Suma waga" desc');
  dta:=DateToStr(form1.DataStart1.Date)+' 00:00:00';
  dtb:=DateToStr(form1.DataKoniec1.Date)+' 23:59:59';
  form1.query.Params.ParamByName('dta').AsDate:=StrToDateTime(dta);
  form1.query.Params.ParamByName('dtb').AsDate:=StrToDateTime(dtb);
  form1.trans.StartTransaction;
  form1.query.Open;

  rodzaj_zestawienia:=klNajwiekszyDrap;
end;


procedure TForm1.Button19Click(Sender: TObject);
var
  err : byte;
  rap : string;
begin
  case rodzaj_zestawienia of
    pojNajwiekszaWaga   : begin
                            err:=0;
                            if not FileExists(rap_poj_NajwiekszaWaga) then err:=1
                            else rap:=rap_poj_NajwiekszaWaga;
                          end;
    pojZlotyKaras       : begin
                            err:=0;
                            if not FileExists(rap_poj_ZlotyKaras) then err:=2
                            else rap:=rap_poj_ZlotyKaras;
                          end;
    pojNajwiekszyDrap   : begin
                            err:=0;
                            if not FileExists(rap_poj_NajwiekszyDrap) then err:=3
                            else rap:=rap_poj_NajwiekszyDrap;
                          end;
    pojNajwiekszaRyba   : begin
                            err:=0;
                            if not FileExists(rap_poj_NajwiekszaRyba) then err:=7
                            else rap:=rap_poj_NajwiekszaRyba;
                          end;


    klNajwiekszaWaga    : begin
                            err:=0;
                            if not FileExists(rap_kl_NajwiekszaWaga) then err:=4
                            else rap:=rap_kl_NajwiekszaWaga;
                          end;
    klZlotyKaras        : begin
                            err:=0;
                            if not FileExists(rap_kl_ZlotyKaras) then err:=5
                            else rap:=rap_kl_ZlotyKaras;
                          end;
    klNajwiekszyDrap    : begin
                            err:=0;
                            if not FileExists(rap_kl_NajwiekszyDrap) then err:=6
                            else rap:=rap_kl_NajwiekszyDrap;
                          end;
    klNajwiekszaRyba    : begin
                            err:=0;
                            if not FileExists(rap_kl_NajwiekszaRyba) then err:=8
                            else rap:=rap_kl_NajwiekszaRyba;
                          end;

    else err:=999;
  end;
  case err of
    0   : begin
            frReport1.FileName:=rap;
            frReport1.LoadFromFile(rap);
            frReport1.ShowReport;
 //           frPreview1.Show;
          end;
    999 : ShowMessage('Najpierw uruchom jakies zestawienie! Nie ma co drukować !');
    else
      ShowMessage('Wydruk niemozliwy, brak jednego z plikow definicji raportow ['+IntToStr(err)+']');
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TabSheet1Show(nil);
end;

procedure TForm1.Button20Click(Sender: TObject);
var
  dta,dtb : string;
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select cz.nazwa "Członek", sum(wp.waga) "Suma waga"');
  form1.query.SQL.Add('from wpisy wp, czlonek cz');
  form1.query.SQL.Add('where wp.idx_imnz = cz.idx and wp.najwryba = 1 and');
  form1.query.SQL.Add('((:dta <= wp.dataczas) and (wp.dataczas <= :dtb))');
  form1.query.SQL.Add('group by "Członek"');
  form1.query.SQL.Add('order by "Suma waga" desc');
  dta:=DateToStr(form1.DataStart1.Date)+' 00:00:00';
  dtb:=DateToStr(form1.DataKoniec1.Date)+' 23:59:59';
  form1.query.Params.ParamByName('dta').AsDate:=StrToDateTime(dta);
  form1.query.Params.ParamByName('dtb').AsDate:=StrToDateTime(dtb);
  form1.trans.StartTransaction;
  form1.query.Open;

  rodzaj_zestawienia:=pojNajwiekszaRyba;
end;

// klub - najwieksza ryba
procedure TForm1.Button21Click(Sender: TObject);
var
  dta,dtb : string;
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select kl.nazwa "Klub", sum(wp.waga) "Suma waga"');
  form1.query.SQL.Add('from wpisy wp, klub kl');
  form1.query.SQL.Add('where wp.idx_klub = kl.idx and wp.najwryba = 1 and');
  form1.query.SQL.Add('((:dta <= wp.dataczas) and (wp.dataczas <= :dtb))');
  form1.query.SQL.Add('group by "Klub"');
  form1.query.SQL.Add('order by "Suma waga" desc');
  dta:=DateToStr(form1.DataStart1.Date)+' 00:00:00';
  dtb:=DateToStr(form1.DataKoniec1.Date)+' 23:59:59';
  form1.query.Params.ParamByName('dta').AsDate:=StrToDateTime(dta);
  form1.query.Params.ParamByName('dtb').AsDate:=StrToDateTime(dtb);
  form1.trans.StartTransaction;
  form1.query.Open;

  rodzaj_zestawienia:=klNajwiekszaRyba;
end;

// dodaj na podstawie ...
procedure TForm1.Button22Click(Sender: TObject);
var
  idx : integer;

begin
  form2.Edit1.Text:=DateTimeToStr(now);

  form2.idx_czlonek      :=form1.query.FieldByName('idx_imnz').AsInteger;
  form2.Edit2.Text       :=form1.query.FieldByName('Stanowisko').AsString;

  form2.idx_klub         :=form1.query.FieldByName('idx_klub').AsInteger;
  form2.Edit3.Text       :=form1.query.FieldByName('Klub').AsString;

  form2.idx_stanowisko   :=form1.query.FieldByName('idx_stanowisko').AsInteger;
  form2.Edit4.Text       :=form1.query.FieldByName('Członek').AsString;

  form2.Edit1.Text       :=DateTimeToStr(form1.query.FieldByName('dataczas').AsDateTime);
  form2.Edit5.Text       :='';
  form2.CheckBox1.Checked:=form1.query.FieldByName('Złoty karaś').AsInteger = 1;
  form2.CheckBox2.Checked:=form1.query.FieldByName('Drapieżnik').AsInteger = 1;
  form2.CheckBox3.Checked:=form1.query.FieldByName('Najwieksza ryba').AsInteger = 1;


  if form1.query.Active then form1.query.Close;
  if form1.trans.Active then form1.trans.Commit;

  // dodanie nowego naglowka wpisu
  form1.trans.StartTransaction;
  form1.query.SQL.Clear;
  form1.query.SQL.Add('insert into wpisy (dataczas)');
  form1.query.SQL.Add('values (:dataczas)');
  form1.query.Params.ParamByName('dataczas').AsDateTime:=StrToDateTime(form2.Edit1.Text);
  form1.query.ExecSQL;

  // pobranie nowow wygenerowanego ID naglowka
  form1.query.SQL.Clear;
  form1.query.SQL.Add('select idx from wpisy order by idx desc limit 1');
  form1.query.Open;
  idx:=form1.query.FieldByName('idx').AsInteger;

  form2.Caption:='Nowy wpis';

  form2.ActiveControl:=form2.Edit5; // waga

  if form2.showmodal = mrOk then
  begin
    form1.query.Close;
    form1.query.SQL.Clear;
    form1.query.SQL.Add('update wpisy set idx_stanowisko = :idx_stanowisko,');
    form1.query.SQL.Add('                 idx_klub       = :idx_klub,');
    form1.query.SQL.Add('                 idx_imnz       = :idx_czlonek,');
    form1.query.SQL.Add('                 waga           = :waga,');
    form1.query.SQL.Add('                 najwryba       = :najwryba,');
    form1.query.SQL.Add('                 zloty_karas    = :zloty_karas,');
    form1.query.SQL.Add('                 drapieznik     = :drapieznik');
    form1.query.SQL.Add('where idx=:idx');
    form1.query.Params.ParamByName('idx_stanowisko').AsInteger:=form2.idx_stanowisko;
    form1.query.Params.ParamByName('idx_klub').AsInteger      :=form2.idx_klub;
    form1.query.Params.ParamByName('idx_czlonek').AsInteger   :=form2.idx_czlonek;
    form1.query.Params.ParamByName('waga').AsFloat            :=StrToFloat(form2.Edit5.Text);
    form1.query.Params.ParamByName('zloty_karas').AsInteger   :=ifs(form2.CheckBox1.Checked);
    form1.query.Params.ParamByName('drapieznik').AsInteger    :=ifs(form2.CheckBox2.Checked);
    form1.query.Params.ParamByName('najwryba').AsInteger      :=ifs(form2.CheckBox3.Checked);
    form1.query.Params.ParamByName('idx').AsInteger:=idx;
    form1.query.ExecSQL;
    form1.trans.Commit
  end
  else form1.trans.Rollback;

  // odswiezenie zawartosci tabeli z okienkami
  TabSheet1Show(nil);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  frReport1.DesignReport;
end;

// największa ryba
procedure TForm1.Button3Click(Sender: TObject);
var
  dta,dtb : string;
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select cz.nazwa "Członek", sum(wp.waga) "Suma waga"');
  form1.query.SQL.Add('from wpisy wp, czlonek cz');
  form1.query.SQL.Add('where wp.idx_imnz = cz.idx and ');
  form1.query.SQL.Add('((:dta <= wp.dataczas) and (wp.dataczas <= :dtb))');
  form1.query.SQL.Add('group by "Członek"');
  form1.query.SQL.Add('order by "Suma waga" desc');
  dta:=DateToStr(form1.DataStart1.Date)+' 00:00:00';
  dtb:=DateToStr(form1.DataKoniec1.Date)+' 23:59:59';
  form1.query.Params.ParamByName('dta').AsDate:=StrToDateTime(dta);
  form1.query.Params.ParamByName('dtb').AsDate:=StrToDateTime(dtb);
  form1.trans.StartTransaction;
  form1.query.Open;

  rodzaj_zestawienia:=pojNajwiekszaWaga;

end;

// zloty karas
procedure TForm1.Button4Click(Sender: TObject);
var
  dta,dtb : string;
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select cz.nazwa "Członek", sum(wp.waga) "Suma waga"');
  form1.query.SQL.Add('from wpisy wp, czlonek cz');
  form1.query.SQL.Add('where wp.idx_imnz = cz.idx and wp.zloty_karas = 1 and');
  form1.query.SQL.Add('((:dta <= wp.dataczas) and (wp.dataczas <= :dtb))');
  form1.query.SQL.Add('group by "Członek"');
  form1.query.SQL.Add('order by "Suma waga" desc');
  dta:=DateToStr(form1.DataStart1.Date)+' 00:00:00';
  dtb:=DateToStr(form1.DataKoniec1.Date)+' 23:59:59';
  form1.query.Params.ParamByName('dta').AsDate:=StrToDateTime(dta);
  form1.query.Params.ParamByName('dtb').AsDate:=StrToDateTime(dtb);
  form1.trans.StartTransaction;
  form1.query.Open;

  rodzaj_zestawienia:=pojZlotyKaras;
end;

// najwiekszy drapieznik
procedure TForm1.Button5Click(Sender: TObject);
var
  dta,dtb : string;
begin
  if form1.query.Active then form1.query.Close;
  if form1.trans.active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('select cz.nazwa "Członek", sum(wp.waga) "Suma waga"');
  form1.query.SQL.Add('from wpisy wp, czlonek cz');
  form1.query.SQL.Add('where wp.idx_imnz = cz.idx and wp.drapieznik = 1 and');
  form1.query.SQL.Add('((:dta <= wp.dataczas) and (wp.dataczas <= :dtb))');
  form1.query.SQL.Add('group by "Członek"');
  form1.query.SQL.Add('order by "Suma waga" desc');
  dta:=DateToStr(form1.DataStart1.Date)+' 00:00:00';
  dtb:=DateToStr(form1.DataKoniec1.Date)+' 23:59:59';
  form1.query.Params.ParamByName('dta').AsDate:=StrToDateTime(dta);
  form1.query.Params.ParamByName('dtb').AsDate:=StrToDateTime(dtb);
  form1.trans.StartTransaction;
  form1.query.Open;

  rodzaj_zestawienia:=pojNajwiekszyDrap;
end;

// dodaj stanowisko
procedure TForm1.Button6Click(Sender: TObject);
begin
  form5.Caption:='Nowe stanowisko';
  form5.ActiveControl:=form5.Edit1;

  if form5.ShowModal <> mrOk then exit;

  if form1.query.Active then form1.query.Close;
  if form1.trans.Active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('insert into stanowisko (nazwa)');
  form1.query.SQL.Add('values (:nazwa)');
  form1.query.Params.ParamByName('nazwa').AsString:=form5.Edit1.Text;
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;
  // odswiezenie zawartosci tabeli
  TabSheet3Show(nil);
end;

// edytuj stanowisko
procedure TForm1.Button7Click(Sender: TObject);
var
  idx : integer;
begin
  form5.Caption:='Edycja stanowiska';
  form5.Edit1.Text:=form1.query.FieldByName('nazwa').AsString;
  idx:=form1.query.FieldByName('idx').AsInteger;
  form5.ActiveControl:=form5.Edit1;

  if form5.ShowModal <> mrOk then exit;

  if form1.query.Active then form1.query.Close;
  if form1.trans.Active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('update stanowisko set nazwa=:nazwa where idx=:idx');
  form1.query.Params.ParamByName('nazwa').AsString:=form5.Edit1.Text;
  form1.query.Params.ParamByName('idx').AsInteger:=idx;
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;
  // odswiezenie zawartosci tabeli
  TabSheet3Show(nil);
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  ShowMessage('Na razie nie kasujemy');
end;

// dodaj klub
procedure TForm1.Button9Click(Sender: TObject);
var
  jm_idx : integer;
begin
  // inicjowanie okienka wyboru klubu
  if form1.trans.Active then form1.trans.Commit;

  form6.Edit1.Text:='';
  form6.Caption:='Nowy klub';
  form6.ActiveControl:=form6.Edit1;

  if form6.ShowModal <> mrOK then exit;

  if form1.trans.Active then form1.trans.Commit;
  if form1.query.Active then form1.query.Close;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('insert into klub (nazwa) values (:nazwa)');
  form1.query.Params.ParamByName('nazwa').AsString:=form6.Edit1.Text;
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;
  // odswiezenie zawartosci tabeli
  TabSheet4Show(nil);

end;

procedure TForm1.DataKoniecChange(Sender: TObject);
begin
//  TabSheet1Show(nil);
end;

procedure TForm1.DataStartChange(Sender: TObject);
begin
//  TabSheet1Show(nil);
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  if first_init then begin
{    unit1.Form1.query.DataBase   :=form1.main_connection;
    unit1.Form1.trans.DataBase   :=form1.main_connection;
    unit1.Form1.query.Transaction:=unit1.Form1.trans;
    unit1.Form1.ds.DataSet       :=unit1.Form1.query;
    unit1.Form1.DBGrid_asort.DataSource:=unit1.Form1.ds;
    unit1.Form1.dbgrid_dok.DataSource  :=unit1.Form1.ds;
    unit1.Form1.DBGrid_jm.DataSource   :=unit1.Form1.ds;
    unit1.Form1.DBGrid_kontr.DataSource:=unit1.Form1.ds;

    unit2.Form2.query.DataBase   :=form1.main_connection;
    unit2.Form2.trans.DataBase   :=form1.main_connection;
    unit2.Form2.query.Transaction:=unit2.Form2.trans;
    unit2.Form2.ds.DataSet       :=unit2.Form2.query;
    unit2.Form2.dbgrid.DataSource:=unit2.Form2.ds;

    unit3.Form3.query.DataBase   :=form1.main_connection;
    unit3.Form3.trans.DataBase   :=form1.main_connection;
    unit3.Form3.query.Transaction:=unit3.Form3.trans;
    unit3.Form3.ds.DataSet       :=unit3.Form3.query;
    unit3.Form3.dbgrid.DataSource:=unit3.Form3.ds;

    unit4.Form4.query.DataBase   :=form1.main_connection;
    unit4.Form4.trans.DataBase   :=form1.main_connection;
    unit4.Form4.query.Transaction:=unit4.Form4.trans;
    unit4.Form4.ds.DataSet       :=unit4.Form4.query;
    unit4.Form4.dbgrid.DataSource:=unit4.Form4.ds;

    // unit5 - brak elementow bazodanowych

    unit6.Form6.query.DataBase   :=form1.main_connection;
    unit6.Form6.trans.DataBase   :=form1.main_connection;
    unit6.Form6.query.Transaction:=unit6.Form6.trans;
    unit6.Form6.ds.DataSet       :=unit6.Form6.query;
    unit6.Form6.dbgrid.DataSource:=unit6.Form6.ds;

    // unit7 - brak elementów bazodanowych
}
    first_init:=false;
  end;
end;

// edytuj asortyment
procedure TForm1.Button10Click(Sender: TObject);
var
  idx : integer;
begin
  form6.Edit1.Text:=form1.query.FieldByName('nazwa').AsString;
  idx             :=form1.query.FieldByName('idx').AsInteger;

  // inicjowanie okienka wyboru asortymentu
  if form1.trans.Active then form1.trans.Commit;

  form6.Caption:='Edycja klubu';
  form6.ActiveControl:=form6.Edit1;

  if form6.ShowModal <> mrOK then
  begin
    // odswiezenie zawartosci tabeli
    TabSheet4Show(nil);
    exit;
  end;

  if form1.trans.Active then form1.trans.Commit;
  if form1.query.Active then form1.query.Close;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('update klub set nazwa =:nazwa');
  form1.query.SQL.Add('where idx = :idx');
  form1.query.Params.ParamByName('nazwa').AsString:=form6.Edit1.Text;
  form1.query.Params.ParamByName('idx').AsInteger:=idx;
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;
  // odswiezenie zawartosci tabeli
  TabSheet4Show(nil);

end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  ShowMessage('Kasowanie nie robimy');

end;

// dodaj czlonkow
procedure TForm1.Button12Click(Sender: TObject);
begin
  if form1.trans.Active then form1.trans.Commit;
  form7.Caption:='Nowy czlonek';
  form7.Edit1.Text:='';
  form7.ActiveControl:=form7.Edit1;

  if form7.ShowModal <> mrOK then exit;

  if form1.query.Active then form1.query.Close;
  if form1.trans.Active then form1.trans.Commit;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('insert into czlonek (nazwa) values (:nazwa)');
  form1.query.Params.ParamByName('nazwa').AsString:=form7.Edit1.Text;
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;
  // odswiezenie zawartosci tabeli
  TabSheet5Show(nil);
end;

// edycja czlonka
procedure TForm1.Button13Click(Sender: TObject);
var
  idx : integer;
begin
  form7.Edit1.Text:=form1.query.FieldByName('nazwa').AsString;
  idx:=form1.query.FieldByName('idx').AsInteger;
  form7.Caption:='Edycja członka';
  form7.ActiveControl:=form7.Edit1;

  if form7.ShowModal <> mrOK then exit;

  if form1.trans.Active then form1.trans.Commit;
  if form1.query.Active then form1.query.Close;

  form1.query.SQL.Clear;
  form1.query.SQL.Add('update czlonek set nazwa = :nazwa');
  form1.query.SQL.Add('where idx = :idx');
  form1.query.Params.ParamByName('nazwa').AsString:=form7.Edit1.Text;
  form1.query.Params.ParamByName('idx').AsInteger:=idx;
  form1.trans.StartTransaction;
  form1.query.ExecSQL;
  form1.trans.Commit;
  // odswiezenie zawartosci tabeli
  TabSheet5Show(nil);

end;

initialization
  {$I unit1.lrs}

end.

